<?php
/*
 * [JINYUN!] (C)2001-2099 Jinyunweb.com
 * This is NOT a freeware, use is subject to license terms
 * $Id: 2017-12-13 03:39:35 apple $
*/
//公众号操作员设置。管理公众号操作员，对操作员进行增删查改。
defined('BY_JYA') or exit('error');
$_RQ['op']=$_RQ['op']?$_RQ['op']:'list';
$return=array();
if($_RQ['op']=='list'){
	$params=array('uniacid'=>$_SESSION['uniacid'],'type'=>array('1','2','4'));
	$pindex = max(1, intval($_RQ['page']));
	$psize = 20;
	$total=0;
	$fields=array('id','uniacid','nickname','roletitle','name','type','intype','status');
	$list=pdo_getslice('core_users',$params,array($pindex,$psize),$total,$fields,'','id desc');
	foreach($list as &$item){
		$item['sql_perms']=pdo_getcolumn('core_user_permissions',array('uniacid'=>$_SESSION['uniacid'],'uid'=>$item['id']),'sql_perms');
	}
	$return['list']=$list;
	$totalpage=ceil($total/$psize);
	$totalpage=intval($totalpage);
	$return['totalpage'] =$totalpage;
	$return['params']['page'] =$pindex;
	$htmls=array(
		'type'=>'list',
		'tabs'=>array(
			array('op'=>'list','title'=>'操作员列表'),
		),
		'list'=>array('data'=>'list','tip'=>'[<red>温馨提示</red>]:
		</br><red>修改权限后，需要退出重新登录才生效！</red>
		</br>1、[<red>添加权限</red>]；页面数据的添加权限！
		</br>2、[<red>编辑权限</red>]；页面数据的编辑修改权限！
		</br>3、[<red>删除权限</red>]；页面数据的删除数据权限！
		</br>4、[<red>充值权限</red>]；会员的积分，余额，虚拟币等充值权限！
		</br>5、[<red>什么是操作员？</red>]；答：是属于每个站点（SAAS用户）旗下的，每个站点（SAAS用户）可以添加多个操作员；
		</br>6、[<red>如何设置角色权限？</red>]；答：通过添加操作员来实现，每个操作员相当于一种角色，比如命名操作员财务，客服等；
		</br>7、[<red>如何设置某个插件的权限？</red>]；答：正常情况下，操作员的权限只能具体到，可以使用哪些插件，哪些系统功能，但是无法设置具体某个插件里面的菜单功能；
		</br>6、[<red>如何实现操作员可以设置具体某个插件里面的菜单功能？</red>]；答：需要插件本身支持操作员单独设置菜单功能权限才行，比如商城，SCRM等一些比较大的插件一般都支持独立设置设置菜单功能权限；例如商城的设置路径：我的商城--M系统--操作权限。
		','html_to'=>'list_html','list'=>array(
			array('name'=>'id','title'=>'操作员ID','type'=>'string'),
			array('type'=>'string','title'=>'操作员名称','name'=>'nickname','help'=>''),
			array('type'=>'string','title'=>'操作员账号','name'=>'name','help'=>''),
			array('type'=>'string','title'=>'身份备注','name'=>'roletitle','help'=>''),
			array('type'=>'radio','title'=>'操作员级别','name'=>'type','options'=>'types'),
			array('type'=>'radio','title'=>'操作员类型','name'=>'intype','options'=>'intypes'),
			array('name'=>'sql_perms','title'=>'操作权限','type'=>'checkbox','options'=>'sql_perms'),
			array('name'=>'status','title'=>'禁止？','type'=>'switch','set'=>'set'),
		),'action'=>array(
			array('action'=>'/account.menu/','title'=>'自定义菜单','type'=>'href'),
		),),
		'search_one'=>array('name'=>'title'),
	);
	$return['types']=array('1'=>'操作员','2'=>'副管理员');
	$return['intypes']=array('隶属站点','隶属插件应用');
	$return['sql_perms']=array('添加权限','编辑权限','删除权限','充值权限');
	$return['htmls']=$htmls;
	exi($return);
}
if($_RQ['op']=='set'){
	$id=intval($_RQ['id']);
	if(!$id){
		exi('请先选择要管理的操作员！','error');
	}
	$post=get_postdata();
	$status=intval($post['status']);
	pdo_update('core_users',array('status'=>$status),array('id'=>$id,'uniacid'=>$_SESSION['uniacid']));
	if($status){
		exi('禁止成功！该操作员将无法登陆后台！');
	}else{
		exi('恢复成功！该操作员可以正常登陆并执行指定操作了！');
	}
	
}
if($_RQ['op']=='edit'){
	$uid=intval($_RQ['id']);
	if($uid){
		$item=pdo_get('core_users',array('id'=>$uid,'uniacid'=>$_SESSION['uniacid']),array('name','type','intype','id','status','home','pluginname'));
		$actions=pdo_get('core_user_permissions',array('uid'=>$uid),array('sys_actions','plugin_actions','sql_perms'));
		$item=array_merge($item,$actions);
	}else{
		$item=array();
	}
	$return['item']=$item;
	$return['types']=array('1'=>'操作员','2'=>'副管理员');
	$return['statuss']=array('0'=>'正常','1'=>'禁用');
	if($_SESSION['isfounder'] && $_SESSION['uniacid']==1){
		$return['types']['4']='副站长';
		$return['sys_actions1']=pdo_getall('core_permissions',array('type'=>1),array('id','title'),'id');
		$return['sys_actions2']=pdo_getall('core_permissions',array('type <='=>2),array('id','title'),'id');
		$return['sys_actions3']=pdo_getall('core_permissions',array('type <='=>3),array('id','title'),'id');
		$return['sys_actions4']=pdo_getall('core_permissions',array('type <='=>4),array('id','title'),'id');
		$return['plugin_actions']=pdo_getall('core_plugins',array(),array('id','title'),'id');
	}elseif($_SESSION['isfounder']){//超级管理员切换普通管理员
		$account=pdo_get('core_accounts',array('uniacid'=>$_SESSION['uniacid']));
		$useractions=model('core/user')->get_useractions($account);
		$sys_actions=$useractions['sys_actions'];
		$plugin_actions=$useractions['plugin_actions'];
		$sys_actions=explode(';',$sys_actions);
		$return['sys_actions1']=pdo_getall('core_permissions',array('type'=>1,'id'=>$sys_actions),array('id','title'),'id');
		$return['sys_actions2']=pdo_getall('core_permissions',array('type <='=>2,'id'=>$sys_actions),array('id','title'),'id');
		$return['sys_actions3']=pdo_getall('core_permissions',array('type <='=>3,'id'=>$sys_actions),array('id','title'),'id');
		$plugin_actions=explode(';',$plugin_actions);
		$return['plugin_actions']=pdo_getall('core_plugins',array('id'=>$plugin_actions),array('id','title'),'id');
	}else{
		$sys_actions=trim($_SESSION['user']['sys_actions'],';');
		$sys_actions=explode(';',$sys_actions);
		$return['sys_actions1']=pdo_getall('core_permissions',array('type'=>1,'id'=>$sys_actions),array('id','title'),'id');
		$return['sys_actions2']=pdo_getall('core_permissions',array('type <='=>2,'id'=>$sys_actions),array('id','title'),'id');
		$return['sys_actions3']=pdo_getall('core_permissions',array('type <='=>3,'id'=>$sys_actions),array('id','title'),'id');
		$plugin_actions=trim($_SESSION['user']['plugin_actions'],';');
		$plugin_actions=explode(';',$plugin_actions);
		$return['plugin_actions']=pdo_getall('core_plugins',array('id'=>$plugin_actions),array('id','title'),'id');
	}
	foreach($return['sys_actions1'] as &$action1){
		$action1=$action1['title'];
	}
	foreach($return['sys_actions2'] as &$action2){
		$action2=$action2['title'];
	}
	foreach($return['sys_actions3'] as &$action3){
		$action3=$action3['title'];
	}
	foreach($return['sys_actions4'] as &$action4){
		$action4=$action4['title'];
	}
	if($return['plugin_actions']){
		foreach($return['plugin_actions'] as &$action){
			$action=$action['title'];
		}
	}
	$htmls=array(
		'type'=>'edit',
		'post'=>'post',
		'desc'=>'操作员',
		'tabs'=>array(
			'0'=>array('op'=>'list','title'=>'操作员列表'),
			'1'=>array('op'=>'edit','title'=>'添加操作员'),
		),
		'edit'=>array(
			array('type'=>'tip','title'=>'<red>修改权限后，需要退出,重新登录才生效！</red>'),
			array('type'=>'string','title'=>'操作员名称','name'=>'nickname','help'=>''),
			array('type'=>'string','title'=>'操作员账号','name'=>'name','help'=>''),
			array('type'=>'password','title'=>'操作员密码','name'=>'passwd', 'help'=>'需要设置或修改操作员密码请填此项' ),
			array('type'=>'string','title'=>'身份备注','name'=>'roletitle','help'=>''),
			array('type'=>'radio','title'=>'操作员级别','name'=>'type','options'=>'types'),
			array('type'=>'radio','title'=>'操作类型','name'=>'intype','options'=>'intypes'),
			array('type'=>'link','from'=>'manage','title'=>'操作员首页','name'=>'home','show'=>array('intype'=>0),'help'=>'操作员登录时跳转的首页！勿必选择有访问权限的，否则登录后，就会提示无权访问！' ),
			array('type'=>'select_more','title'=>'隶属插件','name'=>'pluginname','option_value'=>'name','options'=>'plugins','show'=>array('intype'=>1),'help'=>'操作主要管理本插件业务功能！！' ),
			array('type'=>'radio','title'=>'操作员状态','name'=>'status','options'=>'statuss'),
			array('name'=>'sql_perms','title'=>'页面操作权限','type'=>'checkbox','options'=>'sql_perms','help'=>'下面的勾选权限是浏览权限，如果还要更多权限，需要这里设置！'),
			array('type'=>'checkbox','choose_all'=>true,'title'=>'系统权限设置','name'=>'sys_actions','options'=>'sys_actions1','help'=>'设置系统功能权限','show'=>array('type'=>1)),
			array('type'=>'checkbox','choose_all'=>true,'title'=>'系统权限设置','name'=>'sys_actions','options'=>'sys_actions2','help'=>'设置系统功能权限','show'=>array('type'=>2)),
			array('type'=>'checkbox','choose_all'=>true,'title'=>'系统权限设置','name'=>'sys_actions','options'=>'sys_actions3','help'=>'设置系统功能权限','show'=>array('type'=>3)),
			array('type'=>'checkbox','choose_all'=>true,'title'=>'系统权限设置','name'=>'sys_actions','options'=>'sys_actions4','help'=>'设置系统功能权限','show'=>array('type'=>4)),
			array('type'=>'checkbox','choose_all'=>true,'title'=>'插件权限设置','name'=>'plugin_actions','options'=>'plugin_actions','help'=>'设置插件功能权限' ),
		)
	);
	$return['plugins']=pdo_getall('core_plugins',array('type'=>array(3,4)),array('name','title'),'name');
	$return['sql_perms']=array('添加权限','编辑权限','删除权限','充值权限');
	$return['intypes']=array('隶属站点','隶属插件应用');
	$return['htmls']=$htmls;
	exi($return);
}
if($_RQ['op']=='post'){
	$postdata=get_postdata();
	$postdata['type']=intval($postdata['type']);
	if($postdata['type']==4 && !$_SESSION['isfounder']){
		exi('没有权限！','error');
	}
	if(!in_array($postdata['type'],array('1','2','4'))){
		exi('参数错误！','error');
	}
	$id=intval($postdata['id']);
	$data=array(
		'nickname'=>trim($postdata['nickname']),
		'name'=>trim($postdata['name']),
		'roletitle'=>trim($postdata['roletitle']),
		'status'=>intval($postdata['status']),
		'type'=>intval($postdata['type']),
		'intype'=>intval($postdata['intype']),
		'home'=>$postdata['home'],
		'pluginname'=>trim($postdata['pluginname']),
		'password'=>$postdata['passwd'],
		'sys_actions'=>trim($postdata['sys_actions']),
		'plugin_actions'=>trim($postdata['plugin_actions']),
		'sql_perms'=>trim($postdata['sql_perms']),
	);

	if($id){
		model('core/operator')->update_operator($id,$data);
		$message='修改操作员成功！';
	}else{
		model('core/operator')->create_operator($data);
		$message='添加操作员成功！';
	}
	exi($message,'','list');
}
if($_RQ['op']=='del'){
	$id=intval($_RQ['id']);
	if($id){
		model('core/operator')->del_operator($id);
	}
	$del=trim($_RQ['del'],';');
	if($del){
		$del=explode(';',$del);
		foreach($del as $id){
			$id=intval($id);
			if($id){
				model('core/operator')->del_operator($id);
			}
		}
	}
	exi('删除成功！');
}
?>